package com.wuad.platformwuad.module.Excel.controller.easyExcel.serve;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.read.metadata.holder.ReadSheetHolder;
import com.wuad.platformwuad.module.Excel.controller.easyExcel.entity.ReadData;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 创建读取excel监听器(Map格式)
 *
 * @author wuad
 */
@Slf4j
public class ExcelListenerOnMap extends AnalysisEventListener<Map<String, String>> {

    //创建list集合封装最终的数据
    List<ReadData> list = new ArrayList<ReadData>();

    /**
     * 一行一行去读取excle内容
     *
     * @param data
     * @param analysisContext
     */
    @Override
    public void invoke(Map<String, String> data, AnalysisContext analysisContext) {
        // 返回的是data全部的数据
        System.out.println("data的长度" + data.size());
        // 一条一条顺序输出的
        System.out.println("这是一条条的数据"+data);

        data.get(0);
//        list.add(data);
    }

    /**
     * 读取excel表头信息
     *
     * @param headMap
     * @param context
     */
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println("表头信息："+headMap);
//        for(int i=0; i<headMap.size(); i++) {
//            System.out.println("表头字段：" + headMap.get(i));
//        }
        ReadSheetHolder readSheetHolder = context.readSheetHolder();
        System.out.println("数据行数" + readSheetHolder.getApproximateTotalRowNumber());
        log.info("这是个啥：{}", readSheetHolder);

    }

    /**
     * 读取完成后执行
     *
     * @param analysisContext
     */
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        System.out.println("这个方法什么时候执行");
    }
}
